package org.ucas.faker.web.utils.tech;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class CommUtils {
	//communication with fenci system
	public String postTopic(String text){
		String res = "";
		CloseableHttpClient httpclient = HttpClients.createDefault();
		/*
		HttpGet httpGet = new HttpGet("http://targethost/homepage");
		CloseableHttpResponse response1 = httpclient.execute(httpGet);
		// The underlying HTTP connection is still held by the response object
		// to allow the response content to be streamed directly from the network socket.
		// In order to ensure correct deallocation of system resources
		// the user MUST call CloseableHttpResponse#close() from a finally clause.
		// Please note that if response content is not fully consumed the underlying
		// connection cannot be safely re-used and will be shut down and discarded
		// by the connection manager. 
		try {
		    System.out.println(response1.getStatusLine());
		    HttpEntity entity1 = response1.getEntity();
		    // do something useful with the response body
		    // and ensure it is fully consumed
		    EntityUtils.consume(entity1);
		} finally {
		    response1.close();
		}
*/
		HttpPost httpPost = new HttpPost("http://localhost:8999/get_topic");
		//httpPost.addHeader("Content-Type","text/html;charset=UTF-8");
	
		List <NameValuePair> nvps = new ArrayList <NameValuePair>();
		List<NameValuePair> valuePairs = new ArrayList<NameValuePair>(1);
		valuePairs.add(new BasicNameValuePair("paragraph", text));
		
		CloseableHttpResponse response2=null;
		try {
			UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(valuePairs, "UTF-8");
			
			httpPost.setEntity(formEntity);
			response2 = httpclient.execute(httpPost);
		    //System.out.println(response2.getStatusLine());
		    HttpEntity entity2 = response2.getEntity();
		    //System.out.println(EntityUtils.toString(entity2,"UTF-8"));
		    res = EntityUtils.toString(entity2,"UTF-8");
		    System.out.println(res);
		    // do something useful with the response body
		    // and ensure it is fully consumed
		    EntityUtils.consume(entity2);
		    response2.close();
		} catch(Exception e){
			e.printStackTrace();
		}
		finally {

		    //
		}
		
		return res;
	}
}
